package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.BanknoteSerialNumberPairing;
import com.ruoyi.system.domain.BanknoteSerialNumberRecord;
import com.ruoyi.system.domain.dto.BanknoteSerialNumberRecordDto;
import org.apache.ibatis.annotations.Param;

/**
 * 冠字号记录Mapper接口
 * 
 * @author ruoyi
 * @date 2025-02-27
 */
public interface BanknoteSerialNumberRecordMapper 
{
    /**
     * 查询冠字号记录
     * 
     * @param id 冠字号记录主键
     * @return 冠字号记录
     */
    public BanknoteSerialNumberRecord selectBanknoteSerialNumberRecordById(Long id);

    /**
     * 查询冠字号记录列表
     * 
     * @param banknoteSerialNumberRecord 冠字号记录
     * @return 冠字号记录集合
     */
    public List<BanknoteSerialNumberRecord> selectBanknoteSerialNumberRecordList(BanknoteSerialNumberRecord banknoteSerialNumberRecord);

    /**
     * 新增冠字号记录
     * 
     * @param banknoteSerialNumberRecord 冠字号记录
     * @return 结果
     */
    public int insertBanknoteSerialNumberRecord(BanknoteSerialNumberRecord banknoteSerialNumberRecord);

    /**
     * 修改冠字号记录
     * 
     * @param banknoteSerialNumberRecord 冠字号记录
     * @return 结果
     */
    public int updateBanknoteSerialNumberRecord(BanknoteSerialNumberRecord banknoteSerialNumberRecord);

    /**
     * 删除冠字号记录
     * 
     * @param id 冠字号记录主键
     * @return 结果
     */
    public int deleteBanknoteSerialNumberRecordById(Long id);

    /**
     * 批量删除冠字号记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBanknoteSerialNumberRecordByIds(Long[] ids);

    public BanknoteSerialNumberRecord selectOneByTypeAndCode(@Param("billType") int billType, @Param("serialNumber") String serialNumber);

    public List<BanknoteSerialNumberRecord> selectByTypeAndCodes(@Param("billType") Integer billType, @Param("codes") List<String> codes);

    int insertList(@Param("list") List<BanknoteSerialNumberRecord> banknoteSerialNumberRecords);

    List<BanknoteSerialNumberRecord> selectBanknoteSerialNumberRecordByIds(@Param("ids") Long[] ids,@Param("userName") String userName);

    void insertListDto(@Param("list") List<BanknoteSerialNumberRecordDto> recordImportDtos);

}
